﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Entidades;

namespace AccesoBD
{
    public class UsuariosWeb
    {
        public static bool validarUserWeb(string usr, string pass)
        {
            bool res = false;
            SqlConnection conexion = DB.Conectar();
            try
            {
                string comando = "SELECT nombre, contraseña, activo FROM Usuario WHERE (nombre = @nombre) AND (contraseña = @pass) AND (activo = 1)";
                SqlCommand sqlcmd = new SqlCommand(comando, conexion);
                sqlcmd.Parameters.Add(new SqlParameter("@nombre", usr));
                sqlcmd.Parameters.Add(new SqlParameter("@pass", pass));
                SqlDataReader dr = sqlcmd.ExecuteReader();
                if (dr.HasRows)
                    res = true;
                else
                    res = false;
            }
            catch (Exception ex)
            {

                throw;
            }
            finally
            {
                conexion.Close();
            }
            return res;
        }

        public static Rol obtenerRolUsrWeb(string usr)
        {
            Rol rol = null;
            SqlConnection conexion = DB.Conectar();
            try
            {
                string comando = "SELECT Rol.idRol, Rol.nombre, Rol.fechaBaja FROM Rol INNER JOIN Usuario ON Rol.idRol = Usuario.idRol WHERE (Usuario.nombre = @nombre) AND (Rol.fechaBaja IS NULL OR Rol.fechaBaja > GETDATE())";
                SqlCommand sqlcmd = new SqlCommand(comando, conexion);
                sqlcmd.Parameters.Add(new SqlParameter("@nombre", usr));
                SqlDataReader dr = sqlcmd.ExecuteReader();
                if (dr.HasRows)
                {
                    rol = new Rol();
                    while (dr.Read())
                    {
                        rol.IdRol = int.Parse(dr["idRol"].ToString());
                        rol.Nombre = dr["nombre"].ToString();
                    }
                }
            }
            catch (Exception ex)
            {

                throw;
            }
            finally
            {
                conexion.Close();
            }
            return rol;
        }

        public static Usuario ObtenerUsuario(string usr)
        {
            SqlConnection con = DB.Conectar();
            Usuario oU = null;
            try
            {
                string comando = "Select * from Usuario where nombre=@usr";
                List<SqlParameter> lsp = new List<SqlParameter>();
                lsp.Add(new SqlParameter("@usr", usr));
                SqlDataReader dr = DB.GenerarReader(comando, lsp, con);
                if (dr.Read())
                {
                    oU = new Usuario();
                    if (dr["legajoEmpleado"] != DBNull.Value)
                    {
                        oU.legajoEmpleado = (long)dr["legajoEmpleado"];
                    }
                    else if (dr["legajoMedico"] != DBNull.Value)
                    {
                        oU.legajoMedico = (long)dr["legajoMedico"];
                    }
                    else if (dr["nroAfiliado"] != DBNull.Value)
                    {
                        oU.nroAfiliado = (long)dr["nroAfiliado"];
                    }
                }

            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                con.Close();
            }
            return oU;
        }
    }
}
